#include <iostream>

using namespace std;

const int MAXN = 5005; // 假设n的最大值为5000，

int main() {
  int n, k;
  cin >> n >> k;

  int a[MAXN];
  for (int i = 0; i < n; ++i) {
    cin >> a[i];
  }

  long long oneCycle = 0;

  // 计算单个循环内的逆序对
  for (int i = 0; i < n; ++i) {
    for (int j = i + 1; j < n; ++j) {
      if (a[i] > a[j]) {
        oneCycle++;
      }
    }
  }
  long long crossCycle = 0;

  // 计算跨循环的逆序对
  // 对于每个元素 a[i]，我们计算有多少个元素小于它。
  for (int i = 0; i < n; ++i) {
    int t = 0;
    for (int j = 0; j < n; ++j) {
      if (a[j] < a[i]) {
        t++;
      }
    }
    crossCycle += t;
  }

  // 计算总的逆序对数量
  long long totalInversions = oneCycle * k;
  totalInversions += (k - 1LL) * k / 2 * crossCycle;
  // 这里先算 （k-1）*k/2，最后乘以crossCycle，否则要溢出

  cout << totalInversions << endl;

  return 0;
}
